Link aggregation generally refers to any technique that aggregates or combines multiple network connections (e.g., links or ports) into one virtual network connection or a link aggregation group (LAG). For example, at concurrent times, a network switch may provide data to a server via two LAG links associated with a LAG, where the combined throughput of the LAG links is greater than either of the individual LAG links. When sending packets via a LAG, a network element, such as a network switch, may be configured to provide the packets via one or more LAG links. However, issues arise when attempting to use or allocate the LAG efficiently. In particular, conventional LAG link allocation is typically based on a flow tuple hash or other methods that fail to effectively load balance or load share flows (e.g., sessions or related packets) among LAG links. For example, conventional LAG link allocation techniques fail to ensure that LAG links are not overutilized or underutilized. Another problem with conventional LAG implementations is that conventional LAG implementations typically require all links in a LAG be the same speed and have other similar characteristics, such as latency.
Accordingly, a need exists for improved methods, systems, and computer readable media for LAG link allocation.